/******************************************************************************/
/* Имя файла: GetStudCard.h                                                   */
/* Дата: 29-02-2024                                                           */
/* Разработчик: Андрей Подлегаев                                              */
/* Группа: 315                                                                */
/* Факультет: ЦДО ТУСУР                                                       */
/* Авторское право: Андрею Подлегаеву                                         */
/* Описание: Очистка консоли в разных ОС                                      */
/******************************************************************************/

#ifndef CLEARCONSOLE_H
#define CLEARCONSOLE_H

/* Один из вариантов очистить консоль */

// Добавил только заголовок. В нем же сделал реализацию. Вопросы преподаваелям:
// "Как поступать в таких случаях? Как и где правильно размещать подобные директивы?"

// TODO было предупреждение о том,что код не надежный, сделал проверку, но не уверен, что правильно.
// Похоже на очень плохой код...

void clearConsole()
{
#if defined _WIN32
  const int Result = system("cls");
  if (Result == -1)
    std::cout << "Ошибка очистки экрана!\n";
#elif defined (__LINUX__) || defined(__gnu_linux__) || defined(__linux__)
  const int Result = system("clear");

  if (Result == -1)
    std::cout << "Ошибка очистки экрана!\n";
#elif defined (__APPLE__)
  system("clear");
  if (Result == -1)
    std::cout << "Ошибка очистки экрана!\n";
#endif

}

#endif // CLEARCONSOLE_H
